#ifndef _UNIFORMLOADER_H_
#define _UNIFORMLOADER_H_

#include <string>
#include <memory>
#include <SERender/Resourses/UniformBuffer.h>

namespace SEngine
{
    class UniformBufferLoader
    {
    public:
        virtual ~UniformBufferLoader() = default;
        UniformBufferLoader & AddBlock(const std::string & name, size_t size);
        std::unique_ptr<UniformBuffer> CreateUniformBuffer(std::unique_ptr<IDrive> && drive, const std::string & name, uint32_t bindPoint = 1);

    private:
        size_t m_bufferSize = 0;
        size_t m_curOffset = 0;
        std::unordered_map<std::string, UniformBuffer::Block> m_blocks;

    };
} // namespace SEngine


#endif